home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 2098 / 2098.xpi / chrome / updatenotifier.jar / content / utils.js < prev   
Text File  |  2009-07-05  |  5KB  |  166 lines

  1. // Update Notifier
  2. // By Todd Long <longfocus@gmail.com>
  3. // http://www.longfocus.com/firefox/updatenotifier/
  4.  
  5. const UN_CC = Components.classes;
  6. const UN_CI = Components.interfaces;
  7. const UN_CS = UN_CC['@mozilla.org/consoleservice;1'].getService(UN_CI.nsIConsoleService);
  8.  
  9. const UN_ICON = "chrome://updatenotifier/skin/un-icon.png";
  10. const UN_WEBSITE = "http://www.longfocus.com/firefox/updatenotifier/";
  11.  
  12. /**
  13.  * Manager utils
  14.  */
  15. function UN_getManager() {
  16.   return UN_CC["@longfocus.com/updatenotifier/manager;1"].getService(UN_CI.unIManager);
  17. }
  18.  
  19. /**
  20.  * Logging service
  21.  */
  22. function UN_log(aStr) {
  23.   UN_CS.logStringMessage(aStr);
  24. }
  25.  
  26. /**
  27.  * Document element
  28.  */
  29. function UN_getEBI(aId) {
  30.   return document.getElementById(aId);
  31. }
  32.  
  33. function UN_setEBIA(aId, aAttr, aValue) {
  34.   UN_getEBI(aId).setAttribute(aAttr, aValue);
  35. }
  36.  
  37. /**
  38.  * String bundle
  39.  */
  40. function UN_getBundleString(aName) {
  41.   return UN_getManager().bundle.GetStringFromName(aName);
  42. }
  43.  
  44. function UN_getBundleFString(aName, aParams) {
  45.   return UN_getManager().bundle.formatStringFromName(aName, aParams, aParams.length);
  46. }
  47.  
  48. /**
  49.  * Prompt service
  50.  */
  51. function UN_confirm(aMsg) {
  52.   return UN_CC["@mozilla.org/embedcomp/prompt-service;1"]
  53.            .getService(UN_CI.nsIPromptService)
  54.            .confirm(window, UN_getBundleString("un-ext-name"), aMsg);
  55. }
  56.  
  57. function UN_confirmCheck(aMsg, aCheck) {
  58.   return UN_CC["@mozilla.org/embedcomp/prompt-service;1"]
  59.            .getService(UN_CI.nsIPromptService)
  60.            .confirmCheck(window, UN_getBundleString("un-ext-name"), aMsg, UN_getBundleString("un-confirm-dont-ask"), aCheck);
  61. }
  62.  
  63. /**
  64.  * Branch services
  65.  */
  66. function UN_getBranch() {
  67.   return UN_getManager().branch;
  68. }
  69.  
  70. function UN_getBoolPref(aName) {
  71.   return UN_getBranch().getBoolPref(aName);
  72. }
  73.  
  74. function UN_setBoolPref(aName, aValue) {
  75.   UN_getBranch().setBoolPref(aName, aValue);
  76. }
  77.  
  78. function UN_getIntPref(aName) {
  79.   return UN_getBranch().getIntPref(aName);
  80. }
  81.  
  82. function UN_setIntPref(aName, aValue) {
  83.   UN_getBranch().setIntPref(aName, aValue);
  84. }
  85.  
  86. /**
  87.  * Misc
  88.  */
  89. function UN_restart() {
  90.   // Notify all windows that an application quit has been requested
  91.   var observerService = UN_CC["@mozilla.org/observer-service;1"].getService(UN_CI.nsIObserverService);
  92.   var cancelQuit = UN_CC["@mozilla.org/supports-PRBool;1"].createInstance(UN_CI.nsISupportsPRBool);
  93.   
  94.   observerService.notifyObservers(cancelQuit, "quit-application-requested", "restart");
  95.   
  96.   // Something aborted the quit process
  97.   if (cancelQuit.data)
  98.     return;
  99.   
  100.   //Restart the application
  101.   UN_CC["@mozilla.org/toolkit/app-startup;1"]
  102.     .getService(UN_CI.nsIAppStartup)
  103.     .quit(UN_CI.nsIAppStartup.eRestart | UN_CI.nsIAppStartup.eAttemptQuit);
  104. }
  105.  
  106. function UN_getPlatform() {
  107.   return UN_CC["@mozilla.org/xre/app-info;1"].getService(UN_CI.nsIXULAppInfo).name;
  108. }
  109.  
  110. function UN_isFirefox() {
  111.   return (UN_getPlatform() == "Firefox");
  112. }
  113.  
  114. function UN_getAddon(aId) {
  115.   return UN_CC["@mozilla.org/extensions/manager;1"]
  116.            .getService(UN_CI.nsIExtensionManager)
  117.            .getItemForID(aId);
  118. }
  119.  
  120. function UN_getStatusbarPanels() {
  121.   try {
  122.     return UN_getBrowser().ownerDocument.getElementById("status-bar").childNodes.length;
  123.   } catch(e) {}
  124.   return null;
  125. }
  126.  
  127. function UN_getBrowser() {
  128.   var windowMediator = UN_CC["@mozilla.org/appshell/window-mediator;1"].getService(UN_CI.nsIWindowMediator)
  129.   var window = windowMediator.getMostRecentWindow("navigator:browser");
  130.   
  131.   if (window)
  132.     return window.getBrowser();
  133.   else
  134.   {
  135.     window = windowMediator.getMostRecentWindow("Songbird:Main");
  136.     
  137.     if (window)
  138.       return window.getBrowser();
  139.     else if (typeof getBrowser == "function")
  140.       return getBrowser();
  141.   }
  142.   
  143.   return null;
  144. }
  145.  
  146. function UN_getMyVersion() {
  147.   return UN_getAddon("{95f24680-9e31-11da-a746-0800200c9a66}").version;
  148. }
  149.  
  150. function UN_visitSite(aSite) {
  151.   var ios = UN_CC["@mozilla.org/network/io-service;1"].getService(UN_CI.nsIIOService);
  152.   var refString = UN_WEBSITE + "v/" + UN_getMyVersion() + "/";
  153.   var refUri = ios.newURI(refString, null, null);
  154.   var browser = UN_getBrowser();
  155.   
  156.   if (browser && typeof browser.addTab == "function")
  157.     browser.addTab(aSite, refUri);
  158.   else
  159.   {
  160.     try {
  161.       var uri = ios.newURI(aSite, null, null);
  162.       var protocolSvc = UN_CC['@mozilla.org/uriloader/external-protocol-service;1'].getService(UN_CI.nsIExternalProtocolService);
  163.       protocolSvc.loadUrl(uri, refUri);
  164.     } catch(e) {}
  165.   }
  166. }